package com.wrupple.vegetate.domain;

import java.util.List;


/**
 * 
 * 
 * @author japi
 * 
 */
public interface FieldDescriptor  {
	
	/**
	 * @return the summary
	 */
	public boolean isSummary();


	/**
	 * @return the machine readable name of this field (identicall to the java
	 *         property name)
	 */
	public String getId() ;


	/**
	 * @return the name of the field
	 */
	public String getName() ;

	/**
	 * @return the type of data that this field holds
	 */
	public String getDataType();

	/**
	 * @return the widget
	 */
	public String getWidget();

	/**
	 * @return can this field be sorted?
	 */
	public boolean isSortable();

	/**
	 * @return the filterable
	 */
	public boolean isFilterable();

	/**
	 * @return the createable
	 */
	public boolean isCreateable() ;


	/**
	 * @return the writeable
	 */
	public boolean isWriteable() ;


	/**
	 * @return the editable
	 */
	public boolean isEditable();


	/**
	 * @return the detailable
	 */
	public boolean isDetailable() ;



	/**
	 * @return the value used to fill out this entry 
	 */
	public String getDefaultValue() ;


	public String getForeignCatalog();


	public List<String> getDefaultValueOptions();


	public boolean isKey();
	
	public boolean isEphemeral();



}
